Пакетни системи – Мениджъри - rpm dpkg apt yum pkgtool pacman

Повечето модерни Unix-подобни операционни системи предлагат централизиран механизъм за намиране и инсталиране на софтуер. Софтуерът обикновено се разпространява под формата на пакети , съхранявани в хранилища . Работата с пакети е известна като управление на пакети . Пакетите предоставят основните компоненти на операционната система, заедно със споделени библиотеки, приложения, услуги и документация.

Система за управление на пакети прави много повече от еднократна инсталация на софтуер. Той също така предоставя инструменти за надграждане на вече инсталирани пакети. Хранилищата на пакети помагат да се гарантира, че кодът е проверен за използване във вашата система и че инсталираните версии на софтуера са одобрени от разработчици и поддържащи пакети.

Когато конфигурирате сървъри или среди за разработка, често е необходимо да гледате извън официалните хранилища. Пакетите в стабилното издание на дистрибуция може да са остарели, особено когато става въпрос за нов или бързо променящ се софтуер. Независимо от това, управлението на пакети е жизненоважно умение за системните администратори и разработчиците, а богатството на пакетиран софтуер за големи дистрибуции е огромен ресурс.

Това ръководство е предназначено като бърза справка за основите на намирането, инсталирането и надграждането на пакети в различни дистрибуции и трябва да ви помогне да превеждате тези знания между системите.

Системи за управление на пакети: Кратък преглед

Повечето пакетни системи са изградени около колекции от пакетни файлове. Файлът на пакета обикновено е архив, който съдържа компилирани двоични файлове и други ресурси, съставляващи софтуера, заедно с инсталационни скриптове. Пакетите също съдържат ценни метаданни, включително техните зависимости , списък на други пакети, необходими за тяхното инсталиране и стартиране.

Въпреки че тяхната функционалност и предимства са сходни, форматите и инструментите за опаковане варират в зависимост от платформата:

Операционна система

Формат

Инструмент (и)

Debian

.deb

aptapt-cacheapt-get,dpkg

Ubuntu

.deb

aptapt-cacheapt-get,dpkg

CentOS

.rpm

yum

Fedora

.rpm

dnf

FreeBSD

Пристанища, .txz

makepkg

В Debian и системи, базирани на него, като Ubuntu, Linux Mint и Raspbian, форматът на пакета е .debфайлът. APT, Разширеният инструмент за опаковане, предоставя команди, използвани за най-често срещаните операции: Търсене на хранилища, инсталиране на колекции от пакети и техните зависимости и управление на надстройки. Командите APT работят като преден край на dpkgпомощната програма от по-ниско ниво , която обработва инсталирането на отделни .debфайлове в локалната система и понякога се извиква директно.

Последните издания на повечето дистрибуции, извлечени от Debian, включват aptкомандата, която предлага кратък и унифициран интерфейс за често срещани операции, които традиционно се обработват от по-специфичните apt-getи apt-cache. Използването му не е задължително, но може да опрости някои задачи.

CentOS, Fedora и други членове на семейството Red Hat използват RPM файлове. В CentOS yumсе използва за взаимодействие както с отделни файлове с пакети, така и с хранилища.

В последните версии на Fedora yumе заменен от dnfмодернизирана вилица, която запазва по-голямата част от yumинтерфейса на.

Системата на двоичен пакет на FreeBSD се администрира с pkgкомандатаFreeBSD предлага и Ports Collection, локална структура на директории и инструменти, които позволяват на потребителя да извлича, компилира и инсталира пакети директно от източника, използвайки Makefiles. Обикновено е много по-удобен за използване pkg, но понякога не е наличен предварително компилиран пакет или може да се наложи да промените опциите по време на компилиране.

Актуализиране на списъци с пакети

Повечето системи поддържат локална база данни за пакетите, достъпни от отдалечени хранилища. Най-добре е да актуализирате тази база данни, преди да инсталирате или надстроите пакетите. Като частично изключение от този модел yumи dnfще проверява за актуализации преди извършване на някои операции, но можете да ги попитате по всяко време дали са налични актуализации.

Система

Команда

Debian / Ubuntu

sudo apt-get update

sudo apt update

CentOS

yum check-update

Fedora

dnf check-update

Пакети на FreeBSD

sudo pkg update

Портове на FreeBSD

sudo portsnap fetch update

Надстройте инсталираните пакети

Уверението, че целият инсталиран софтуер на машината е актуален, би било огромно начинание без пакетна система. Ще трябва да проследявате измененията и предупрежденията за защита за стотици различни пакети. Въпреки че мениджърът на пакети не решава всеки проблем, който ще срещнете при надграждане на софтуера, той ви позволява да поддържате повечето системни компоненти с няколко команди.

Във FreeBSD надстройването на инсталираните портове може да доведе до пробивни промени или да изисква стъпки за ръчна конфигурация. Най-добре е да прочетете, /usr/ports/UPDATINGпреди да надстроите с portmaster.

Система

Команда

Бележки

Debian / Ubuntu

sudo apt-get upgrade

Надстройва само инсталираните пакети, където е възможно.

sudo apt-get dist-upgrade

Може да добавя или премахва пакети, за да задоволи нови зависимости.

sudo apt upgrade

Харесвам apt-get upgrade.

sudo apt full-upgrade

Харесвам apt-get dist-upgrade.

CentOS

sudo yum update

Fedora

sudo dnf upgrade

Пакети на FreeBSD

sudo pkg upgrade

Портове на FreeBSD

less /usr/ports/UPDATING

Използва lessза преглед на бележки за актуализация за портове (използвайте клавишите със стрелки за превъртане, натиснете q, за да излезете).

cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a

Инсталира portmasterи използва за актуализиране на инсталирани портове.

Намерете пакет

Повечето дистрибуции предлагат графичен или управляван от меню преден край на колекции от пакети. Те могат да бъдат добър начин за сърфиране по категории и откриване на нов софтуер. Често обаче най-бързият и ефективен начин за намиране на пакет е търсенето с инструменти на командния ред.

Система

Команда

Бележки

Debian / Ubuntu

apt-cache search search_string

apt search search_string

CentOS

yum search search_string

yum search all search_string

Търси всички полета, включително описание.

Fedora

dnf search search_string

dnf search all search_string

Търси всички полета, включително описание.

Пакети на FreeBSD

pkg search search_string

Търси по име.

pkg search -f search_string

Търси по име, връщайки пълни описания.

pkg search -D search_string

Описание на търсенията.

Портове на FreeBSD

cd /usr/ports && make search name=package

Търси по име.

cd /usr/ports && make search key=search_string

Търси коментари, описания и зависимости.

Вижте информация за конкретен пакет

Когато решавате какво да инсталирате, често е полезно да прочетете подробни описания на пакетите. Заедно с човешки четим текст, те често включват метаданни като номера на версиите и списък на зависимостите на пакета.

Система

Команда

Бележки

Debian / Ubuntu

apt-cache show package

Показва локално кеширана информация за пакет.

apt show package

dpkg -s package

Показва текущото състояние на инсталиран пакет.

CentOS

yum info package

yum deplist package

Изброява зависимости за даден пакет.

Fedora

dnf info package

dnf repoquery --requires package

Изброява зависимости за даден пакет.

Пакети на FreeBSD

pkg info package

Показва информация за инсталиран пакет.

Портове на FreeBSD

cd /usr/ports/category/port && cat pkg-descr

Инсталирайте пакет от хранилища

След като знаете името на даден пакет, обикновено можете да го инсталирате и неговите зависимости с една команда. Като цяло можете да предоставите множество пакети за инсталиране, като просто ги изброите всички.

Система

Команда

Бележки

Debian / Ubuntu

sudo apt-get install package

sudo apt-get install package1 package2 ...

Инсталира всички изброени пакети.

sudo apt-get install -y package

Приема „да“, където aptобикновено се изисква да продължи.

sudo apt install package

Показва цветна лента за напредъка.

CentOS

sudo yum install package

sudo yum install package1 package2 ...

Инсталира всички изброени пакети.

sudo yum install -y package

Приема „да“, където yumобикновено се изисква да продължи.

Fedora

sudo dnf install package

sudo dnf install package1 package2 ...

Инсталира всички изброени пакети.

sudo dnf install -y package

Приема „да“, където dnfобикновено се изисква да продължи.

Пакети на FreeBSD

sudo pkg install package

sudo pkg install package1 package2 ...

Инсталира всички изброени пакети.

Портове на FreeBSD

cd /usr/ports/category/port && sudo make install

Изгражда и инсталира порт от източник.

Инсталирайте пакет от локалната файлова система

Понякога, въпреки че софтуерът не е официално опакован за дадена операционна система, разработчик или доставчик ще предложи пакетни файлове за изтегляне. Обикновено можете да ги изтеглите с вашия уеб браузър или чрез curlкомандния ред. След като пакетът е в целевата система, той често може да бъде инсталиран с една команда.

В системите, извлечени от Debiandpkgобработва отделни файлове с пакети. Ако даден пакет има неудовлетворени зависимости, gdebiчесто може да се използва за извличането им от официални хранилища.

В системите CentOS и Fedora yumи dnfсе използват за инсталиране на отделни файлове и също така ще се справят с необходимите зависимости.

Система

Команда

Бележки

Debian / Ubuntu

sudo dpkg -i package.deb

sudo apt-get install -y gdebi && sudo gdebi package.deb

Инсталира и използва gdebiза инсталиране package.debи извличане на липсващи зависимости.

CentOS

sudo yum install package.rpm

Fedora

sudo dnf install package.rpm

Пакети на FreeBSD

sudo pkg add package.txz

sudo pkg add -f package.txz

Инсталира пакета, дори ако вече е инсталиран.

Премахнете един или повече инсталирани пакети

Тъй като мениджърът на пакети знае какви файлове се предоставят от даден пакет, той обикновено може да ги премахне чисто от системата, ако софтуерът вече не е необходим.

Система

Команда

Бележки

Debian / Ubuntu

sudo apt-get remove package

sudo apt remove package

sudo apt-get autoremove

Премахва ненужните пакети.

CentOS

sudo yum remove package

Fedora

sudo dnf erase package

Пакети на FreeBSD

sudo pkg delete package

sudo pkg autoremove

Премахва ненужните пакети.

Портове на FreeBSD

sudo pkg delete package

cd /usr/ports/path_to_port && make deinstall

Деинсталира инсталиран порт.

В aptкомандване

Администраторите на дистрибуции от семейство Debian обикновено са запознати с apt-getи apt-cache. По-малко известен е опростеният aptинтерфейс, създаден специално за интерактивна употреба.

Традиционно командване

apt Еквивалентен

apt-get update

apt update

apt-get dist-upgrade

apt full-upgrade

apt-cache search string

apt search string

apt-get install package

apt install package

apt-get remove package

apt remove package

apt-get purge package

apt purge package

Въпреки че aptчесто е по-бърз стенопис за дадена операция, той не е предназначен като цялостен заместител на традиционните инструменти и интерфейсът му може да се променя между версиите, за да подобри използваемостта. Ако използвате команди за управление на пакети в скрипт или конвейер на черупки, е добра идея да се придържате към apt-getи apt-cache.

Поискай помощ

В допълнение към уеб-базирани документи, имайте предвид, че Unix ръчни страници (които обикновено се наричат човека страници ) са налични за повечето команди от черупката. За да прочетете страница, използвайте man:

·       man page

·        

 

копие

В man, можете да навигирате с клавишите със стрелки. Натиснете /, за да търсите текст в страницата, и q, за да излезете.

Система

Команда

Бележки

Debian / Ubuntu

man apt-get

Актуализиране на локалната база данни за пакети и работа с пакети.

man apt-cache

Запитване към локалната база данни за пакети.

man dpkg

Работа с отделни файлове на пакети и заявки за инсталирани пакети.

man apt

Работа с по-кратък, лесен за използване интерфейс за повечето основни операции.

CentOS

man yum

Fedora

man dnf

Пакети на FreeBSD

man pkg

Работа с предварително компилирани двоични пакети.

Портове на FreeBSD

man ports

Работа с колекцията Ports.

В заключение:

Се запознахме с основните операции, които могат да бъдат препращани между системите, но само надраскват повърхността на сложна тема. За повече подробности за дадена система можете да се консултирате със следните ресурси: